<TagAttribute("weather_particle_system","rain","????","????",1,48)>
Public Class WEATHER_PARTICLE_SYSTEM_TAG
Inherits HaloTag
Public Const Extension as String = "weather_particle_system"
Public Const FourCC as String = "rain"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 1
Public Const HeaderLength as Integer = 48

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

''' <summary>
''' weather_particle_type_block
''' </summary>
<TagField("particle types", 604, 11)>
Public particle_types as List(Of PARTICLE_TYPES_BLOCK)
Public Class PARTICLE_TYPES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("name^", 32, 8)>
Public name as String

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' Particles begin to fade into visibility beyond this distance
''' </summary>
<TagField("fade-in start distance:world units", 1, 0)>
Public fade as Single

''' <summary>
''' Particles become fully visible beyond this distance
''' </summary>
<TagField("fade-in end distance:world units", 1, 0)>
Public fade_1 as Single

''' <summary>
''' Particles begin to fade out of visibility beyond this distance
''' </summary>
<TagField("fade-out start distance:world units", 1, 0)>
Public fade_2 as Single

''' <summary>
''' Particles become fully invisible beyond this distance
''' </summary>
<TagField("fade-out end distance:world units", 1, 0)>
Public fade_3 as Single

''' <summary>
''' Particles begin to fade into visibility above this height
''' </summary>
<TagField("fade-in start height:world units", 1, 0)>
Public fade_4 as Single

''' <summary>
''' Particles become fully visible above this height
''' </summary>
<TagField("fade-in end height:world units", 1, 0)>
Public fade_5 as Single

''' <summary>
''' Particles begin to fade out of visibility above this height
''' </summary>
<TagField("fade-out start height:world units", 1, 0)>
Public fade_6 as Single

''' <summary>
''' Particles become fully invisible above this height
''' </summary>
<TagField("fade-out end height:world units", 1, 0)>
Public fade_7 as Single

''' <summary>
''' 
''' </summary>
<TagField("", 96, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("particle count:particles per cubic world unit", 2, 1)>
Public particle_count as Single()

''' <summary>
''' 
''' </summary>
<TagField("physics", 16, 10)>
Public physics as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("acceleration magnitude", 2, 1)>
Public acceleration_magnitude as Single()

''' <summary>
''' 
''' </summary>
<TagField("acceleration turning rate", 1, 0)>
Public acceleration_turning_rate as Single

''' <summary>
''' 
''' </summary>
<TagField("acceleration change rate", 1, 0)>
Public acceleration_change_rate as Single

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("particle radius:world units", 2, 1)>
Public particle_radius as Single()

''' <summary>
''' 
''' </summary>
<TagField("animation rate:frames per second", 2, 1)>
Public animation_rate as Single()

''' <summary>
''' 
''' </summary>
<TagField("rotation rate:degrees per second", 2, 1)>
Public rotation_rate as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("color lower bound", 4, 3)>
Public color_lower_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("color upper bound", 4, 3)>
Public color_upper_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 64, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
#Region "SHADER"

''' <summary>
''' 
''' </summary>
<TagField("sprite bitmap", 16, 10)>
Public sprite_bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("render mode", 1, 17)>
Public render_mode as Short

''' <summary>
''' Render modes that depend on an direction will use this vector.
''' </summary>
<TagField("render direction source", 1, 17)>
Public render_direction_source as Short

''' <summary>
''' 
''' </summary>
<TagField("", 40, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("shader flags", 1, 19)>
Public shader_flags as Short

''' <summary>
''' 
''' </summary>
<TagField("framebuffer blend function", 1, 17)>
Public framebuffer_blend_function as Short

''' <summary>
''' 
''' </summary>
<TagField("framebuffer fade mode", 1, 17)>
Public framebuffer_fade_mode as Short

''' <summary>
''' 
''' </summary>
<TagField("map flags", 1, 19)>
Public map_flags as Short

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_6 as Byte()

''' <summary>
''' Optional multitextured second map
''' </summary>
#End Region
#Region "Secondary Map"

''' <summary>
''' 
''' </summary>
<TagField("bitmap", 16, 10)>
Public bitmap as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("anchor", 1, 17)>
Public anchor as Short

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("u-animation source", 1, 17)>
Public u as Short

''' <summary>
''' 
''' </summary>
<TagField("u-animation function", 1, 17)>
Public u_1 as Short

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("u-animation period:seconds", 1, 0)>
Public u_2 as Single

''' <summary>
''' 
''' </summary>
<TagField("u-animation phase", 1, 0)>
Public u_3 as Single

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("u-animation scale:repeats", 1, 0)>
Public u_4 as Single

''' <summary>
''' 
''' </summary>
<TagField("v-animation source", 1, 17)>
Public v as Short

''' <summary>
''' 
''' </summary>
<TagField("v-animation function", 1, 17)>
Public v_1 as Short

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("v-animation period:seconds", 1, 0)>
Public v_2 as Single

''' <summary>
''' 
''' </summary>
<TagField("v-animation phase", 1, 0)>
Public v_3 as Single

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("v-animation scale:repeats", 1, 0)>
Public v_4 as Single

''' <summary>
''' 
''' </summary>
<TagField("rotation-animation source", 1, 17)>
Public rotation as Short

''' <summary>
''' 
''' </summary>
<TagField("rotation-animation function", 1, 17)>
Public rotation_1 as Short

''' <summary>
''' 0 defaults to 1
''' </summary>
<TagField("rotation-animation period:seconds", 1, 0)>
Public rotation_2 as Single

''' <summary>
''' 
''' </summary>
<TagField("rotation-animation phase", 1, 0)>
Public rotation_3 as Single

''' <summary>
''' 0 defaults to 360
''' </summary>
<TagField("rotation-animation scale:degrees", 1, 0)>
Public rotation_4 as Single

''' <summary>
''' 
''' </summary>
<TagField("rotation-animation center", 2, 1)>
Public rotation_5 as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("zsprite radius scale", 1, 0)>
Public zsprite_radius_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_8 as Byte()
#End Region

End Class

End Class
